package eteam.aps.mapper;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import eteam.aps.model.entity.Worksheet;
import eteam.aps.model.vo.WorksheetVo;
import eteam.aps.systeminterface.model.vo.QueryInfoVo;
import eteam.aps.systeminterface.model.vo.Worksheets;
import org.apache.ibatis.annotations.Mapper;

import java.util.List;
import java.util.Map;

/**
 * 单据流水号持久层
 *
 * @author WMT
 * @Date 2023/2/17 14:05
 */
@Mapper
public interface WorksheetMapper extends BaseMapper<Worksheet> {

    /**
     * 根据fId物理删除单据流水号
     * @param fId fId
     * @return 受影响的行数
     */
    int deleteOne(String fId);

    /**
     * 修改单据流水号
     * @param worksheet 修改数据
     * @return 受影响的行数
     */
    int updateOne(Worksheet worksheet);

    /**
     * 统计所有单据流水号
     * @param map 查询条件
     * @return 单据流水号列表
     */
    int selectCountAll(Map<String,Object> map);

    /**
     * 分页查询所有单据流水号
     * @param map 查询条件
     * @return 单据流水号列表
     */
    List<WorksheetVo> selectAll(Map<String,Object> map);


    /**
     * 根据fId查询单据流水号详情
     * @param fId fId
     * @return 单据详情
     */
    WorksheetVo selectDetails(String fId);

    /**
     * 根据单别编号查询单据前缀
     * @param sheetCode 单据编号
     * @return 单据前缀
     */
    Worksheets selectSheetPrefix(String sheetCode);

    /**
     * 根据单据类型查询字典编号、名称
     * @return 字典编号、名称
     */
    List<QueryInfoVo> selectDdByWorksheetType();

    /**
     * 根据系统类别统计单据性质编号总数
     * @param map 查询条件
     * @return 总数
     */
    int selectCountWorksheetCode(Map<String,Object> map);

    /**
     * 根据系统类别统计单据性质名称总数
     * @param map 查询条件
     * @return 总数
     */
    int selectCountWorksheetName(Map<String,Object> map);

    /**
     * 根据名称获取编号
     * @param name
     * @return
     */
    QueryInfoVo selectCodeByWorksheetName(String name);

    QueryInfoVo selectNameByCode(String code);
}
